from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
import APIFunction

app = FastAPI()

# 添加 CORS 中间件
origins = [
    "http://localhost:8081",  # 允许来自前端 Vue 应用的请求
    "http://localhost:8080",  # 允许来自前端 Vue 应用的请求
    "http://localhost",  # 其他可能的请求源
    # 可以添加更多允许跨域的源
]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,  # 允许的源（可以是特定的域名，或是 "*" 来允许所有）
    allow_credentials=True,  # 是否允许发送 Cookie 等凭证
    allow_methods=["*"],  # 允许的 HTTP 方法
    allow_headers=["*"],  # 允许的 HTTP 头部
)


@app.post("/chat")
async def chat(request: Request):
    data = await request.json()
    user_input = data.get("message", "")

    response1, response2 = APIFunction.generate_response(user_input)

    # 根据意图处理
    if response2 == "无关键字":
        return {"code": 1, "response": response1}
    else:
        return {"code": 2, "response": response1, "intent": response2}


print("API started")

@app.post("/clr")
async def clr():
    APIFunction.clear_memory()